package org.wdcode.base.helper;

import java.util.List;
import java.util.Map;

import org.wdcode.base.bean.EntityBean;
import org.wdcode.base.cache.DBEntityCache;
import org.wdcode.common.tools.Lists;

/**
 * 继承Entity实体的缓存操作助手类的基础实现
 * @author WD
 * @since JDK6
 * @version 1.0 2009-11-23
 */
public abstract class BaseEntityCacheHelper<C extends DBEntityCache<E>, E extends EntityBean> extends BaseEntityHelper<E> implements EntityCacheHelper<C, E> {
	// 缓存
	private C	cache;

	/**
	 * 根据ID获得实体
	 * @param id 实体ID
	 * @return 实体
	 */
	public final E get(int id) {
		return check(cache.get(id));
	}

	/**
	 * 根据实体ID获得实体名
	 * @param id 实体ID
	 * @return 实体名
	 */
	public final String getName(int id) {
		return get(id).getName();
	}

	/**
	 * 获得实体列表
	 * @return 实体列表
	 */
	public final List<E> getList() {
		return Lists.getList(cache.getCaches().values());
	}

	/**
	 * 获得实体键列表
	 * @return 实体列表
	 */
	public final List<Integer> getKeys() {
		return cache.getKeys();
	}

	/**
	 * 获得全部缓存
	 * @return 全部缓存
	 */
	public final Map<Integer, E> getCaches() {
		return cache.getCaches();
	}

	/**
	 * 获得缓存
	 * @return 缓存
	 */
	public final C getCache() {
		return cache;
	}

	/**
	 * 设置缓存
	 * @param cache 缓存
	 */
	public final void setCache(C cache) {
		this.cache = cache;
	}
}
